/**
 * 请你完成一个 safeGet 函数，可以安全的获取无限多层次的数据，一旦数据不存在不会报错，会返回 undefined，
 * 例如：
 * var data = { a: { b: { c: 'Huatai' } } }
 * safeGet(data, 'a.b.c') // => Huatai
 * safeGet(data, 'a.b.c.d') // => 返回 undefined
 * safeGet(data, 'a.b.c.d.e.f.g') // => 返回 undefined
 * @param {Object} obj 
 * @param {string} str 
 */
function safeGet(obj,str){
    var fn=new Function("obj","return obj."+str);
    try{
        return fn(obj,str)
    }catch(err){
        //console.log(err);
        return undefined;
    }
}
var data = { a: { b: { c: 'Huatai' } } }
var a=safeGet(data, 'a.b.c')
var b=safeGet(data, 'a.b.c.d')
var c=safeGet(data, 'a.b.c.d.e.f.g')
console.log(a,b,c);